Çàêðûòü îêíî
Ñïèñîê äðóãèõ äîêóìåíòîâ ÏÝÂÌ "Àãàò"
8.5. Oïècaíèe ïoäïpoãpaìì
8.5.1. Beêòop oøèáêè
B ÿ÷eéêax ERRVECT xpaíèòcÿ aäpec ïoëüçoâaòeëücêoé peaêöèè ía oøèáêó ÄOC. Ïpè ïepexoäe ía íee â cëó÷ae oøèáêè â aêêóìóëÿòope íaxoäèòcÿ êoä oøèáêè:
1-3 - oøèáêè RWTS, ¤28 - ôaéë íe íaéäeí, ¤29 - íeò câoáoäíoé ïaìÿòè ía äècêe, ¤2A - çaïècü â çaïepòûé ôaéë, ¤2B - ÷òeíèe èç ôaéëa ïpè èc÷epïaíèè äaííûx, ¤2E - ïoâòopíoe oòêpûòèe óæe oòêpûòoão ôaéëa, ¤2F - íeâepíûé òèï ôaéëa, ¤30 - íeò câoáoäíûx áóôepoâ äëÿ oòêpûòèÿ ôaéëa, ¤4F - óíè÷òoæeíèe èëè ïepeçaïècü çaïepòoão ôaéëa.
8.5.2. Áëoêoâûé oáìeí c äècêoì: 1 ópoâeíü
Äëÿ íaèáoëee ècïoëüçóeìûx çoí äaííûx â ïaìÿòè âûäeëeíû ocoáûe áóôepa, a äëÿ íaèáoëee ÷acòûx ôopì oápaùeíèÿ ê RWTS äëÿ ÷òeíèÿ/çaïècè áëoêoâ ïpeäócìoòpeíû cïeöèaëüíûe âûçoâû.
Áóôepa:
------------------------------------------------ Èíä Ccûëêa Aäpec Coäepæaíèe ------------------------------------------------ 0 BUFT ïepeì áóôep ò/c-cïècêa òeê.ôaéëa 2 BUFD ïepeì áóôep òeê.áëoêa äaííûx ôaéëa 4 BVTOC ¤BF00 áóôep VTOC òeê.aêòèâíoão äècêa 6 BTSL ¤0200 còaíäapòíûé áóôep ò/c-cïècêa 8 BCAT ¤0500 áóôep òeê.áëoêa êaòaëoãa ------------------------------------------------
Ccûëêa - ýòo ïapa ÿ÷eeê ÄOC, coäepæaùaÿ aäpec óêaçaííoão áóôepa.
Bûçoâû:
CALLRTS - ×òeíèe áëoêa
CALLWTS - Çaïècü áëoêa
Bxoä: A=òpeê, Y=ceêòop, X=èíäeêc áóôepa
Bûxoä: ía ERRVECT ïpè oøèáêe, èía÷e C=A=0
CALLRWTS- ×òeíèe/çaïècü áëoêa
Bxoä: òoò æe, C=0 äëÿ ÷òeíèÿ, 1 äëÿ çaïècè
Bûxoä: òoò æe
PUTCAT - ×òeíèe paçäeëa êaòaëoãa â áóôep CATAL
GETCAT - Çaïècü paçäeëa êaòaëoãa èç áóôepa CATAL
Bxoä: TCAT/SCAT (¤91/92) - ò/c paçäeëa
Bûxoä: êaê ó CALLRWTS
PUTVTOC - Çaïècü VTOC èç áóôepa, ecëè áûëè èçìeíeíèÿ â íeì
(VTOCHAN/=0)
WRVTOC - Áeçócëoâíaÿ çaïècü VTOC
GETVTOC - ×òeíèe VTOC â áóôep
Bxoä: íeò
Bûxoä: êaê ó CALLRWTS, Z=0
CHEKVTOC- Ïpoâepêa, VTOC êaêoão äècêa, íaxoäèòcÿ â áóôepe, çaïècü ía ìecòo òeêóùeão, ecëè íóæeí äpóãoé, ÷òeíèe íoâoão, ecëè oí eùe íe c÷èòaí
Bxoä: íoìep äècêoâoäa â DRIVER (¤3B3)
Bûxoä: êaê ó CALLRWTS
Èìeíío ýòè ïoäïpoãpaììû âeäóò êoíòpoëü òoìa äècêa: ïoêa ecòü íeçaêpûòûe ôaéëû (VOLNUM/=0), VTOC ìeíÿòü íeëüçÿ.
GETTSL - ×òeíèe/çaïècü ò/c-cïècêa â áóôep TSLIST
Bxoä: TLIST/SLIST (¤94/95) - ò/c-aäpec
C=0 äëÿ ÷òeíèÿ, 1 äëÿ çaïècè
Bûxoä: êaê ó CALLRWTS
8.5.3. Èícòpóìeíòû äëÿ oápaáoòêè ôaéëoâ: 2 ópoâeíü
Bo âcex ïoäïpoãpaììax ýòoão ópoâíÿ âoçìoæeí âûxoä ía ERRVECT ïpè oøèáêax oáìeía c äècêoì.
NEWSECT - Bûäeëeíèe áëoêa ïaìÿòè
Bxoä: A=æeëaeìûé òpeê
Bûxoä: ía ERRVECT, cëè íeò câoáoäíûx áëoêoâ,
èía÷e A/X - ò/c âûäeëeííoão áëoêa
DELSECT - Ocâoáoæäeíèe áëoêa ïaìÿòè
Bxoä: A/X - ò/c ocâoáoæäaeìoão áëoêa
Bûxoä çía÷eíèÿ íe èìeeò
Oáe ïoäïpoãpaììû èçìeíÿþò ìacêè çaíÿòûx áëoêoâ âo VTOC.
ADVANCAT- Ïepexoä ê cëeäóþùeìó ôaéëó â êaòaëoãe
Bxoä: â CATAL íaxoäèòcÿ òeêóùèé áëoê êaòaëoãa
TCAT/SCAT (¤91/92) - eão ò/c-aäpec
SHIFT (¤93) - cìeùeíèe paçäeëa òeê.ôaéëa
Bûxoä:C=0, SHIFT - cìeùeíèe cëeä.ôaéëa (+¤23),
ïpè íeoáxoäèìocòè â áóôep c÷èòaí cëeä.áëoê
TCAT/SCAT - eão aäpec
C=1, ecëè cëeä.áëoêa íeò (pacøèpeíèe=0/0)
BEGCAT - Hacòpoéêa ía ía÷aëo êaòaëoãa
Bxoä: A/Y - ò/c-aäpec êaòaëoãa (oáû÷ío èç VTOC).
Äaëüøe èìèòèpóeòcÿ ïepexoä ê 1 ôaéëó, êaê âûøe
FINDNAME- Ïoècê ôaéëa â êaòaëoãe
Bxoä: NAMEBUF (¤300-31D) - èìÿ ôaéëa
FILETYP (¤53) - òèï ôaéëa, êaê â êaòaëoãe,
ecëè d7=1, òo ëþáoé
Bûxoä: C=1, ecëè ôaéë íe íaéäeí
C=0 + âûxoä ADVANCAT + â áóôepe TSLIST
íaxoäèòcÿ ò/c-cïècoê ôaéëa, ecëè íaéäeí
FINDMAKE- Ïoècê è coçäaíèe ôaéëa â êaòaëoãe
Bxoä: òoò æe
Bûxoä: òoò æe; ecëè ôaéë íe íaéäeí, òo èùeòcÿ
ïepâûé çaòepòûé ôaéë èëè êoíeö êaòaëoãa,
è çaíocèòcÿ èíôopìaöèÿ o coçäaííoì ôaéëe;
ïpè íeoáxoäèìocòè êaòaëoã pacøèpÿeòcÿ;
coçäaeòcÿ ïócòoé ò/c-cïècoê ôaéëa (INITLIST)
RFIFOP - Ïpoâepêa, oòêpûò ëè ôaéë: âeäeòcÿ ïóòeì cpaâíeíèÿ ÿ÷eeê DRN,TCAT,SCAT,SHIFT (¤90-93) c cooòâeòcòâ. áaéòaìè èíôopìaöèoííûx áóôepoâ âcex ôaéëoâ; âûçûâaeòcÿ oáû÷ío ïocëe FINDNAME èëè FINDMAKE
Bxoä: óêaçaííûe ÿ÷eéêè, èíôopì.áóôepa ôaéëoâ
Bûxoä: ía ERRVECT, ecëè ôaéë óæe oòêpûò
èía÷e C=1
READFILE- Ïoècê ôaéëa: âûçoâ CHECKVTOC, FINDNAME è RFIFOP
Bûxoä: êaê ó RFIFOP, C=0, ecëè ôaéë íe íaéäeí
INITLIST- Paçìeòêa ò/c-cïècêa ôaéëa
Bûxoä: oáíóëeíèe áóôepa TSLIST,
TLIST/SLIST (¤94-95) - ò/c-aäpec cïècêa
RWRZER - Ïepeïècü èíôopì. áóôepa ôaéëa c 4 ía 0 còpaíèöó
RWRSTOR - Ïepeïècü èíôopì. áóôepa ôaéëa c 0 ía 4 còpaíèöó
Bxoä: X=íoìep áóôepa (cìeùeíèe ía 4 còp.)
PARAMSX - Hacòpoéêa ccûëoê ía áóôepa ôaéëoâ
Bxoä: X=íoìep áóôepa ôaéëa
Bûxoä: ADRTSL (¤3A-3B) = BUFT = aäpec áóôepa TCC
ADRBUF (¤3C-3D) = BUFD = aäpec áóôepa äaííûx
RDATA - ×òeíèe áëoêa äaííûx ïo aäpecó â TCC
WDATA - Çaïècü áëoêa äaííûx ïo aäpecó â TCC, ecëè áëoê ìeíÿëcÿ (ISCHAN/=0)
Bxoä: ADRTSL (¤3A-3B) - aäpec áóôepa TCC,
SHLIST (¤96) - cìeùeíèe ò/c-aäpeca â TCC
EXPAND - Pacøèpeíèe TCC: coçäaíèe íoâoão áëoêa è íacòpoéêa ccûëoê ía íeão èç òeêóùeão è èç íeão ê òeêóùeìó
Bxoä: ADRTSL - aäpec áóôepa TCC,
TLIST/SLIST - ò/c-aäpec òeê.paçäeëa
Bûxoä: âce òo æe íacòpoeío ía íoâûé paçäeë
RDNEXT - ×òeíèe cëeäóþùeão áëoêa ôaéëa
Bxoä: X=íoìep ôaéëa
Bûxoä: â áóôepe äaííûx - cëeäóþùèé áëoê, âce
óêaçaòeëè íóæíûì oápaçoì èçìeíeíû
8.5.4. Paáoòa c ôaéëaìè: 3 ópoâeíü
Ha ýòoì ópoâíe peaëèçóþòcÿ còaíäapòíûe oïepaöèè íaä ôaéëaìè, ïoçâoëÿþùèe çaáûòü ïpo èx âíóòpeííþþ opãaíèçaöèþ.
1 ãpóïïa ïoäïpoãpaìì coçäaeò è ïoääepæèâaeò còpóêòópó èíôopìaöèoííûx áóôepoâ oòêpûòûx ôaéëoâ è âoçìoæíocòü ïocòoÿííoé paáoòû c íèìè.
OPEN - Oòêpûòèe ôaéëa: ïoècê câoáoäíoão áóôepa, ïoècê èëè coçäaíèe ôaéëa ía äècêe, coçäaíèe èíôopì.áóôepa, ÷òeíèe 1 áëoêa ôaéëa â ïaìÿòü, ócòaíoâêa 0 ïoçèöèè
Bxoä: NAMEBUF (¤300-31D) - èìÿ ôaéëa
Bûxoä: íopìaëüíûé èëè ía ERRVECT
POSITION- Ïoçèöèoíèpoâaíèe ôaéëa
Bxoä: LOCADR (¤2D-2F) - íoâaÿ ïoçèöèÿ ôaéëa
Bûxoä: ôaéë íacòpoeí ía äaííóþ ïoçèöèþ
âûxoä ía ERRVECT, ecëè òaêoé ïoçèöèè íeò
RDBYTE - ×òeíèe áaéòa èç ôaéëa: äëÿ òeêcòoâûx ïpoâepêa è ócòaíoâêa áaéòa EOF (¤A0) â èíôopì.áóôepe
Bxoä: X=íoìep ôaéëa
Bûxoä: A=c÷èòaííûé áaéò, X,Y coxpaíÿþòcÿ, ecëè
íe áûëo âûxoäa ía ERRVECT ïo oøèáêe
WRBYTE - Çaïècü áaéòa â ôaéë: ïpoâepêa çaùèòû ôaéëa, äëÿ òeêcòoâûx ócòaíoâêa EOF
Bxoä: A=çaïècûâaeìûé áaéò, X=íoìep ôaéëa
Bûxoä: A,X,Y coxpaíÿþòcÿ, ecëè íe áûëo âûxoäa
ía ERRVECT ïo oøèáêe
Çaìe÷aíèe. Oáe ïoäïpoãpaììû â cëó÷ae oøèáêè ócòaíaâëèâaþò ïpèçíaê IOERR (¤3B7) /= 0, ïoçâoëÿþùèé oòëè÷èòü oøèáêó ïpè ââoäa-âûâoäe oò äpóãèx.
SHUTFILE- Çaêpûòèe ôaéëa: çaïècü ía äècê òeêóùeão paçäeëa äaííûx, TCC, VTOC, ecëè oíè ìeíÿëècü, ècïpaâëeíèe äëèíû ôaéëa â êaòaëoãe, ocâoáoæäeíèe èíôopì.áóôepa (çaïècü â DRN 0)
Bxoä: FILENUM (¤48) = òèï ôaéëa
2 ãpóïïa ïoäïpoãpaìì âûïoëíÿeò eäèíoâpeìeííûe äeécòâèÿ è íe òpeáóeò cïeöèaëüíoé íacòpoéêè.
DELETE - Óíè÷òoæeíèe ôaéëa: ïpoâepêa çaùèòû, çaïècü FF â ïepâûé áaéò paçäeëa êaòaëoãa, ocâoáoæäeíèe âcex eão ceêòopoâ; oòcóòcòâèe ôaéëa oøèáêè íe âûçûâaeò
Bxoä: NAMEBUF - èìÿ ôaéëa
LOCK - Çaùèòa ôaéëa ïo çaïècè,
UNLOCK - cíÿòèe çaùèòû ôaéëa - ócòaíoâêa/cápoc còapøeão áèòa â òèïe ôaéëa â êaòaëoãe
CATALOG - Bûäa÷a êaòaëoãa äècêa ía òeêóùee ócòpoécòâo âûâoä (÷epeç COUT)
LOAD - Çaãpóçêa ôaéëa â ïaìÿòü
Bxoä: NAMEBUF - èìÿ ôaéëa
FILETYP (¤53) - òèï ôaéëa, êaê â FINDNAME
BEGADR (¤98-99) - aäpec ía÷aëa â ïaìÿòè
(ecëè 99 áaéò = 0, aäpec áepeòcÿ èç TCC)
äëèía áepeòcÿ èç TCC
Bûxoä: C=0, ecëè ôaéë íe íaéäeí, èía÷e C=1
SAVE - Çaïècü ó÷acòêa ïaìÿòè ía äècê, êaê ôaéëa
Bxoä: NAMEBUF - èìÿ ôaéëa
FILETYP (¤53) - òèï ôaéëa
BEGADR (¤98-99) - ía÷aëüíûé aäpec
LENGTH (¤9A-9B) - äëèía â áaéòax
BEGOBJ (¤9C-9D) - äoïoëí.èíôopìaöèÿ äëÿ
ïepeìeùaeìûx ôaéëoâ, ïèøíòcÿ â TCC